﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Media;
using SharpMap.Rendering;


namespace SharpMap.Wpf.Rendering
{
    public class WpfRenderObjectOld
    {
        public WpfRenderObjectOld(StreamGeometry streamPath, Brush fill, Brush highlightFill, Brush selectFill,

            Pen line, Pen highlightLine, Pen selectLine, Pen outline,
                              Pen highlightOutline, Pen selectOutline, RenderState state)
        {

            _state = state;

            WpfStreamPath = streamPath;
            Fill = fill;

            HighlightFill = highlightFill;
            SelectFill = selectFill;
            Outline = outline;
            HightlightOutline = highlightOutline;
            SelectOutline = selectOutline;
            Line = line;
            HightlightLine = highlightLine;
            SelectLine = selectLine;

            Symbol = null;
            AffineTransform = Matrix.Identity;
            Bounds = new Rect();
            Text = null;

            //ColorTransform = null;
        }


        public WpfRenderObjectOld(ImageSource symbol, System.Windows.Rect bounds, Matrix transform, RenderState state)
        {

            _state = state;
            Symbol = symbol;
            AffineTransform = transform;
            //ColorTransform = colorTransform;
            Bounds = bounds;
            WpfStreamPath = null;

            Fill = null;
            Line = null;
            HighlightFill = null;
            SelectFill = null;
            Outline = null;
            HightlightOutline = null;
            SelectOutline = null;
            Text = null;

        }

        public WpfRenderObjectOld(FormattedText formattedText, Rect bounds, Brush fill, Brush highlightFill, Brush selectFill,
 Pen outline, Pen highlightOutline, Pen selectOutline, Matrix transform)
        {

            _state = RenderState.Normal;

            WpfStreamPath = null;
            Symbol = null;
            Bounds = new Rect();
            AffineTransform = transform;

            //ColorTransform = null;
            Text = formattedText;

            Bounds = bounds;
            Fill = fill;
            HighlightFill = highlightFill;
            SelectFill = selectFill;
            Outline = outline;
            HightlightOutline = highlightOutline;
            SelectOutline = selectOutline;
            Line = null;


        }

        private RenderState _state;
        public readonly System.Windows.Media.ImageSource Symbol;
        public readonly System.Windows.Rect Bounds;
        /// <summary>
        /// The affine transform applied to the symbol before drawing.
        /// </summary>
        public readonly System.Windows.Media.Matrix AffineTransform;
        /// <summary>
        /// The path to draw when <see cref="Type"/> is 
        /// </summary>
        public readonly StreamGeometry WpfStreamPath;

        public readonly FormattedText Text;

        public readonly Brush Fill;

        /// <summary>
        /// The brush used to fill the path when the state is 
        /// <see cref="GdiRenderObjectState.Hover"/>.
        /// </summary>
        public readonly Brush HighlightFill;

        /// <summary>
        /// The brush used to fill the path when the state is 
        /// <see cref="WpfRenderObjectState.Selected"/>.
        /// </summary>
        public readonly Brush SelectFill;

        public readonly Pen Line;
        public readonly Pen HightlightLine;
        public readonly Pen SelectLine;

        /// <summary>
        /// The pen used to outline the path when the state is 
        /// <see cref="WpfRenderObjectState.Normal"/>.
        /// </summary>
        public readonly Pen Outline;

        /// <summary>
        /// The pen used to outline the path when the state is 
        /// <see cref="WpfRenderObjectState.Hover"/>.
        /// </summary>
        public readonly Pen HightlightOutline;

        /// <summary>
        /// The pen used to outline the path when the state is 
        /// <see cref="WpfRenderObjectState.Selected"/>.
        /// </summary>
        public readonly Pen SelectOutline;

        /// <summary>
        /// Gets or sets the render object state of visual appearance.
        /// </summary>
        public RenderState State
        {
            get { return _state; }
            set { _state = value; }
        }


    }
}